'use strict';

const port = 9901; // 开发环境 前台端口
const backendPort = 9500;//开发环境 后台接口
const fileSysPort = 8018;//开发环境 文件系统


const path = require('path');

const resolve = dir => {
  return path.join(__dirname, dir)
};

// 项目部署基础
// 默认情况下，我们假设你的应用将被部署在域的根目录下,
// 例如：https://www.my-app.com/
// 默认：'/'
// 如果您的应用程序部署在子路径中，则需要在这指定子路径
// 例如：https://www.foobar.com/my-app/
// 需要将它改为'/my-app/'
// iview-admin线上演示打包路径： https://file.iviewui.com/admin-dist/
const BASE_URL = process.env.NODE_ENV === 'production'
  ? '/'
  : '/';


module.exports = {
  publicPath: BASE_URL,
  // 如果你不需要使用eslint，把lintOnSave设为false即可
  lintOnSave: false,
  // 设为false打包时不生成.map文件
  productionSourceMap: false,
  runtimeCompiler: true,
  chainWebpack: config => {
    config.resolve.alias
      .set('@', resolve('src')) // key,value自行定义，比如.set('@@', resolve('src/components'))
      .set('_c', resolve('src/components'));
    //取消prefetch 可能需要的资源，浏览器不一定会加载这些资源;  和 preload 必定需要的资源，浏览器一定会加载这些资源
    config.plugins
      .delete('preload')
      .delete('prefetch');
    config.module.rule('vue')
      .test(/\.vue$/)
      .use('iview-loader')
      .loader('iview-loader')
      .options({
        prefix: false
      })
      .end()
  },

  // 这里写你调用接口的基础路径，来解决跨域，如果设置了代理，那你本地开发环境的axios的baseUrl要写为 '' ，即空字符串
  devServer: {
    port: port,
    open: true,
    overlay: {
      warnings: false,
      errors: true
    },
    proxy: {
      '/api': {
        target: `http://127.0.0.1:${backendPort}`,
        changeOrigin: true,
        secure: true,
        pathRewrite: {
          "^/api": ""
        }
      },
      '/file': {
        target: `http://127.0.0.1:${fileSysPort}`,
        changeOrigin: true,
        secure: true,
        pathRewrite: {
          "^/file": ""
        }
      },
      '/github': {
        target: 'https://github.com',
        changeOrigin: true,
        pathRewrite: {
          '^/github': '/'
        }
      }
    }
  }
};
